/*
**  Apache License, Version 2.0
**  Notes:Use this command to anonymously check out the latest project source code:
**  Non-members may check out a read-only working copy anonymously over HTTP.
**  SVN checkout http://YHHCatiaBaseUtlWsp.googlecode.com/svn/trunk/ 
**
**  Author:		Kevin Yang
**  Email:		Bigearrabbit@qq.com
**
**  DATE:		2013-4-4
**
**  File Name:	YHHPropertyDefine.h
**
**  Notes:
** 
*/
#ifndef _YHHPropertyDefine_H_
#define _YHHPropertyDefine_H_

#define YHHPropertyDefinePointerGetGet(iName,iClassType) \
	public: inline const iClassType * Get##iName##Ptr()const {return m_p##iName;};\
	public: inline iClassType * Get##iName##Ptr() {return m_p##iName;};\
	protected: iClassType * m_p##iName;

#define YHHPropertyDefinePointerGetGetSet(iName,iClassType) \
	public: inline const iClassType * Get##iName##Ptr()const {return m_p##iName;};\
	public: inline iClassType * Get##iName##Ptr() {return m_p##iName;}\
	public: inline void Set##iName##Ptr(iClassType * ipValue) {m_p##iName = ipValue;};\
	protected: iClassType * m_p##iName;
	
#define YHHPropertyDefinePointerGet(iName,iClassType)\
	public: inline const iClassType * Get##iName()const {return m_p##iName;};\
	protected: iClassType * m_p##iName;
	
#define YHHPropertyDefineGetGet(iName,iClassType)\
	public: inline const iClassType & Get##iName()const {return m_##iName;};\
	public: inline iClassType & Get##iName() {return m_##iName;}\
	protected: iClassType m_##iName;

#define YHHPropertyDefineGetGetSet(iName,iClassType)\
	public: inline const iClassType & Get##iName()const {return m_##iName;};\
	public: inline iClassType & Get##iName() {return m_##iName;}\
	public: inline void Set##iName(const iClassType & iValue) {m_##iName = iValue;};\
	protected: iClassType m_##iName;
	
#define YHHPropertyDefineGetConstRef(iName,iClassType)\
	public: inline const iClassType & Get##iName()const {return m_##iName;};\
	protected: iClassType m_##iName;
	
#define YHHPropertyDefineGetCopy(iName,iClassType)\
	public: inline const iClassType Get##iName()const {return m_##iName;};\
	protected: iClassType m_##iName;

#endif//_YHHPropertyDefine_H_